package top.infopub.mgr.ic.service;

import java.util.List;

import com.github.pagehelper.Page;

import top.infopub.mgr.ic.domain.MonthCtrlDomain;
import top.infopub.mgr.ic.vo.MonthCtrlVo;
import top.infopub.model.ic.MonthCtrl;
import top.infopub.model.ic.MonthCtrlAtt;
import top.infopub.model.ic.MonthCtrlMile;
import top.infopub.model.ic.MonthCtrlSub;
import top.infopub.model.ic.MonthCtrlSubpack;
import top.infopub.generic.GenericService;

public interface MonthCtrlService extends GenericService<MonthCtrl, String> {

    /**
     * 根据条件查询分页数据
     * @param page
     * @param monthCtrlVo
     * @return 
     * @see
     */
    Page<MonthCtrlDomain> selectByDomainWhere(Page<MonthCtrlDomain> page, MonthCtrlVo monthCtrlVo);

    /**
     * 根据条件查询-我审批的分页数据
     * @param page
     * @param monthCtrlVo
     * @return 
     * @see
     */
    Page<MonthCtrlDomain> selectMyCheckByDomainWhere(Page<MonthCtrlDomain> page,
                                                     MonthCtrlVo monthCtrlVo);

    /**
     * 新增记录及子项
     * @param monthCtrl
     * @param monthCtrlSubpacks
     * @param monthCtrlSubs
     * @param monthCtrlMiles
     * @param fileAtts 
     * @see
     */
    void saveMonthCtrl(MonthCtrl monthCtrl, List<MonthCtrlSubpack> monthCtrlSubpacks,
                       List<MonthCtrlSub> monthCtrlSubs, List<MonthCtrlMile> monthCtrlMiles,
                       List<MonthCtrlAtt> fileAtts);

    /**
     * 根据id查询项目详情
     * @param id 主键id
     * @return 
     * @see
     */
    MonthCtrlVo selectById(String id);
    
    /**
     * 根据投建基本信息的proCode查询月度管控的子项名称
     */
    List<MonthCtrlDomain> selectByProCode(String proCode);
    
}